/**
 * 
 */
package com.google.code.cana.pojo.financeiro;

import java.io.Serializable;
import java.util.Date;

/**
 * Representa o pagamento de uma venda.
 * 
 * @author Rodrigo Barbosa Lira
 *
 */
public class Pagamento implements Serializable, ItemExtrato, Comparable<Pagamento> {
	
	private static final long serialVersionUID = 680406898782842833L;

	private Date dataCadastro;
	
	private Date dataPagamento;
	
	private Double valorPago;

	/**
	 * @return the dataCadastro
	 */
	public Date getDataCadastro() {
		return dataCadastro;
	}

	/**
	 * @param dataCadastro the dataCadastro to set
	 */
	public void setDataCadastro(Date dataCadastro) {
		this.dataCadastro = dataCadastro;
	}

	/**
	 * @return the dataPagamento
	 */
	public Date getDataPagamento() {
		return dataPagamento;
	}

	/**
	 * @param dataPagamento the dataPagamento to set
	 */
	public void setDataPagamento(Date dataPagamento) {
		this.dataPagamento = dataPagamento;
	}

	/**
	 * @return the valorPago
	 */
	public Double getValorPago() {
		return valorPago;
	}

	/**
	 * @param valorPago the valorPago to set
	 */
	public void setValorPago(Double valorPago) {
		this.valorPago = valorPago;
	}

	/* (non-Javadoc)
	 * @see java.lang.Comparable#compareTo(java.lang.Object)
	 */
	public int compareTo(Pagamento o) {
		return getDataPagamento().compareTo(o.getDataPagamento());
	}

	/* (non-Javadoc)
	 * @see com.google.code.cana.pojo.financeiro.ItemExtrato#getDataRegistro()
	 */
	public Date getDataRegistro() {
		return getDataPagamento();
	}

	/* (non-Javadoc)
	 * @see com.google.code.cana.pojo.financeiro.ItemExtrato#getDescricaoItem()
	 */
	public String getDescricaoItem() {
		return "Recebimento";
	}

	/* (non-Javadoc)
	 * @see com.google.code.cana.pojo.financeiro.ItemExtrato#getObservacao()
	 */
	public String getObservacao() {
		return null;
	}

	/* (non-Javadoc)
	 * @see com.google.code.cana.pojo.financeiro.ItemExtrato#getValorMovimentacao()
	 */
	public Double getValorMovimentacao() {
		return getValorPago();
	}

}
